/**
 * <copyright>
 * </copyright>
 *

 */
package info.unlp.tesis.qvtoperational;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Operation Call Exp</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link info.unlp.tesis.qvtoperational.OperationCallExp#getReferresOperation <em>Referres Operation</em>}</li>
 *   <li>{@link info.unlp.tesis.qvtoperational.OperationCallExp#getArgument <em>Argument</em>}</li>
 *   <li>{@link info.unlp.tesis.qvtoperational.OperationCallExp#getArgument1 <em>Argument1</em>}</li>
 *   <li>{@link info.unlp.tesis.qvtoperational.OperationCallExp#getArgument2 <em>Argument2</em>}</li>
 * </ul>
 * </p>
 *
 * @see info.unlp.tesis.qvtoperational.QvtoperationalPackage#getOperationCallExp()
 * @model
 * @generated
 */
public interface OperationCallExp extends OCLExpression
{
  /**
   * Returns the value of the '<em><b>Referres Operation</b></em>' attribute.
   * The literals are from the enumeration {@link info.unlp.tesis.qvtoperational.Operation}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Referres Operation</em>' attribute isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Referres Operation</em>' attribute.
   * @see info.unlp.tesis.qvtoperational.Operation
   * @see #setReferresOperation(Operation)
   * @see info.unlp.tesis.qvtoperational.QvtoperationalPackage#getOperationCallExp_ReferresOperation()
   * @model
   * @generated
   */
  Operation getReferresOperation();

  /**
   * Sets the value of the '{@link info.unlp.tesis.qvtoperational.OperationCallExp#getReferresOperation <em>Referres Operation</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Referres Operation</em>' attribute.
   * @see info.unlp.tesis.qvtoperational.Operation
   * @see #getReferresOperation()
   * @generated
   */
  void setReferresOperation(Operation value);

  /**
   * Returns the value of the '<em><b>Argument</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Argument</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Argument</em>' containment reference.
   * @see #setArgument(OCLExpression)
   * @see info.unlp.tesis.qvtoperational.QvtoperationalPackage#getOperationCallExp_Argument()
   * @model containment="true"
   * @generated
   */
  OCLExpression getArgument();

  /**
   * Sets the value of the '{@link info.unlp.tesis.qvtoperational.OperationCallExp#getArgument <em>Argument</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Argument</em>' containment reference.
   * @see #getArgument()
   * @generated
   */
  void setArgument(OCLExpression value);

  /**
   * Returns the value of the '<em><b>Argument1</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Argument1</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Argument1</em>' containment reference.
   * @see #setArgument1(OCLExpression)
   * @see info.unlp.tesis.qvtoperational.QvtoperationalPackage#getOperationCallExp_Argument1()
   * @model containment="true"
   * @generated
   */
  OCLExpression getArgument1();

  /**
   * Sets the value of the '{@link info.unlp.tesis.qvtoperational.OperationCallExp#getArgument1 <em>Argument1</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Argument1</em>' containment reference.
   * @see #getArgument1()
   * @generated
   */
  void setArgument1(OCLExpression value);

  /**
   * Returns the value of the '<em><b>Argument2</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Argument2</em>' containment reference isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Argument2</em>' containment reference.
   * @see #setArgument2(OCLExpression)
   * @see info.unlp.tesis.qvtoperational.QvtoperationalPackage#getOperationCallExp_Argument2()
   * @model containment="true"
   * @generated
   */
  OCLExpression getArgument2();

  /**
   * Sets the value of the '{@link info.unlp.tesis.qvtoperational.OperationCallExp#getArgument2 <em>Argument2</em>}' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Argument2</em>' containment reference.
   * @see #getArgument2()
   * @generated
   */
  void setArgument2(OCLExpression value);

} // OperationCallExp
